1. Technical Field
This invention generally relates to interactions on the world-wide web, and more specifically relates to an apparatus and method that allows a web user to interact with a software application on another computer system that is accessible via the world-wide web.
2. Background Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful that just a few years ago.
Computer systems typically include operating system software that control the basic function of the computer, and one or more software applications that run under the control of the operating system to perform desired tasks. For example, a typical IBM Personal Computer may run the OS/2 operating system, and under the control of the OS/2 operating system, a user may execute an application program, such as a word processor. As the capabilities of computer systems have increased, the software applications designed for high performance computer systems have become extremely powerful.
Other changes in technology have also profoundly affected how we use computers. For example, the widespread proliferation of computers prompted the development of computer networks that allow computers to communicate with each other. With the introduction of the personal computer (PC), computing became accessible to large numbers of people. Networks for personal computers were developed to allow individual users to communicate with each other. In this manner, a large number of people within a company could communicate at the same time with a software application running on one computer system.
One significant computer network that has recently become very popular is the Internet. The Internet grew out of the modern proliferation of computers and networks, and has evolved into a sophisticated worldwide network of computer systems linked together by web pages that collectively make up the "world-wide web", or WWW. A user at an individual PC (i.e., workstation) that wishes to access the WWW typically does so using a software application known as a web browser. A web browser makes a connection via the WWW to other computers known as web servers, and receives information from the web servers that is displayed on the user's workstation. Information displayed to the user is typically organized into pages that are constructed using a specialized language called Hypertext Markup Language (HTML).
With the growing popularity of the Internet and the WWW, businesses have recognized that the Internet provides a new way to boost both sales and efficiency. If a user with a web browser can interact directly with a company's application software, the transaction will be simplified. For example, let's evaluate how a person typically reserves a rental car. The person calls the rental car agency, and then gives his or her information (i.e., name, address, credit card number, etc.) to the rental car agent over the phone. The agent must enter the information into the company's application software to initialize a process to reserve a car. A more efficient car reservation system for web users would allow the user to interact directly with the application software. This would eliminate many of the tasks that the agent now must perform. However, allowing a software application to interact directly with web users would require creating custom interface software for each specific software application that is to be accessed via the WWW.
In addition, the programming interface and transaction support requirements for accessing software over the WWW can be formidable. Web browsers and web servers have very detailed interface requirements and most complex software applications have native interfaces with very specific and unique protocols for conducting transactions. In addition, successfully conducting transactions over the WWW requires fairly extensive knowledge of Common Gateway Interfaces (CGIs). CGIs are executable programs that are well known to those skilled in the art. Different CGIs with different access procedures are typically provided for each different software application and the native interface for the software application. Achieving successful results requires sophisticated programming know-how and expertise. Many organizations that want access to software over the WWW will typically hire full-time software consultants and professional programmers to design and program the necessary processes for accomplishing the specific functions and WWW transactions desired on a case-by-case basis. Unfortunately, this is a very expensive undertaking. There is, at present, no easy to use and easy to implement solution available for providing WWW transaction support, particularly for more complex software applications.
As the availability of complex software applications over the WWW has increased, the complexity of the transactions being conducted over the WWW has also increased. Further, as a single user accesses multiple applications over the WWW, there must be some mechanism in place to track the inflow and outflow of information between the web browser and the various software applications. In addition, as the scenario is expanded to include multiple users each accessing multiple software applications, the amount of program and transaction support that must be provided becomes increasingly formidable. Each software vendor currently handles these transactions by various different, and sometimes conflicting means.
Finally, as the number of web users, providers, and web servers continues to rapidly expand, it will become increasingly important for a web user to be able to interact directly and efficiently with multiple software applications supported by different vendors. Without a mechanism that is capable of providing improved methods of transaction support between software applications and computers on the world-wide web, the time and effort required to conduct transactions between multiple Internet users and multiple software applications will be excessively long and expensive.